Detection of Transitions Between Text and Non-Text Frames in a Video Stream

ABSTRACT

Detecting the start of a credit roll within video program may allow for the automatic extension of video recordings among other functions. The start of the credit roll may be detected by determining the number of text blocks within a sequence of frames and identifying a point in the sequence of frames where a difference between the number of text blocks in frames occurring before the point and the number of text blocks in frames occurring after the point is greatest and exceeds a specified threshold. Text blocks may be identified within each frame by partitioning the frame into one or more segments and recording the segments having a pixel of a sufficiently high contrast. Contiguous segments may be merged or combined into single blocks, which may then be filtered to remove noise and false positives. Additional content may be inserted into the credit roll frames.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/555,743, filed Aug. 29, 2019, which is a continuation of U.S. patentapplication Ser. No. 15/808,443, filed Nov. 9, 2017 (now U.S. Pat. No.10,440,305), which is a continuation of U.S. patent application Ser. No.14/625,981, filed Feb. 19, 2015 (now U.S. Pat. No. 9,843,759), which isa continuation of U.S. patent application Ser. No. 12/908,048, filedOct. 20, 2010 (now U.S. Pat. No. 8,989,499), each of which isincorporated by reference herein as to its entirety.

BACKGROUND

Schedules for television and other video programming may often beunpredictable due to various circumstances. For example, a sportingevent may run past an expected or scheduled end time due to extrainnings in a baseball game, overtime in basketball, football or hockey,and the like. Similarly, other types of programming such as movies ornews may also exceed a predefined end time due, for example, to previousshows or content deviating from their schedule, resulting in a cascadeeffect. Accordingly, if a user has defined a recording for a programbased on predefined scheduling information (e.g., in an electronicprogramming guide) and the program extends passed the scheduled endtime, the recording of the program might not be complete.

BRIEF SUMMARY

The following presents a simplified summary of the disclosure in orderto provide a basic understanding of some aspects. It is not intended toidentify key or critical elements of the disclosure or to delineate thescope of the disclosure. The following summary merely presents someconcepts of the disclosure in a simplified form as a prelude to the moredetailed description provided below.

Aspects of the present disclosure relate to systems and methods fordetecting a beginning of a credit roll of a video program within a videostream. For example, detection of the beginning of a credit roll may beperformed by extracting a plurality of frames and analyzing each frameto identify text blocks within those frames. Since a credit roll mayinclude more text for a longer duration than in other content frames(e.g., scenes of a movie, sporting event, news broadcast, etc.), thenumber of text blocks in the video frames and a pattern thereof mayallow detection of a transition point. Accordingly, the number of textblocks may be counted for each frame and placed in a sequence accordingto the chronological order of the frames. A wavelet may then be appliedto the sequence of numbers to identify a point within the plurality offrames where a greatest difference exists between the number of textblocks detected in a first set of frames chronologically prior to theidentified point and the number of text blocks detected in a second setof frames chronologically after the identified point. The point ofgreatest difference may be identified as the starting point of thecredit roll.

According to another aspect, identifying text blocks within a frame maybe performed by defining a text analysis window size and partitioningthe frame based on the defined text analysis window size. The highestcontrast exhibited by a pixel within each partition or segment may beidentified and compared against a threshold contrast value. If thehighest contrast meets or exceeds the threshold value, the correspondingpartition or segment may be recorded. Those partitions that do notinclude a pixel having a contrast that meets or exceeds the thresholdcontrast value may be discarded or not recorded. Subsequently,contiguous recorded partitions may be merged into single text blocks.The blocks may then be filtered to remove false positives such as noiseand images that might have high contrasts. For example, the filter mayremove any blocks that are not of a predefined threshold size (e.g., acertain number of pixels high and/or wide) and blocks that do not have asufficient high contrast pixel density. In the latter case, the systemmay determine the number of pixels within the block having a contrastexceeding the threshold contrast and calculate a density therefrom. Ifthe density does not meet or exceed a particular density threshold, theblock may be discarded as a false positive.

According to another aspect, identifying the start of a credit roll mayallow a system to automatically extend recordings if the credit roll hasnot been detected. Since the credit roll is typically located at the endof a video program, the credit roll may be a reliable indicator of whena program is about to end (or a substantive portion of the program hasended). In one example, frames may be extracted from a video stream upondetecting a current time matching a predefined amount of time prior to ascheduled end time of the program being recorded (e.g., 10 minutesbefore the scheduled end time). In one example, the extracted frames maycomprise 2 frames per second of the most recently recorded 5 minutes, 10minutes, 30 minutes or other time periods. The system may then determineif the start of the credit roll is detected based on a text blockanalysis. If not, the system may extend the recording end time by apredefined amount of time (e.g., 10 seconds, 20 seconds, 30 seconds, 2minutes, 5 minutes, etc.) and continue to monitor for the start of thecredit roll based on a subsequent set of frames. If the start of thecredit roll is detected, the system may set (or reset) the recording endtime to a predefined amount of time after the start of the credit roll.Alternatively, the system might not alter the current recording end timewhen the start of the credit roll is detected.

According to yet another aspect, video programs such as video on demandand other assets may be processed such that additional content andinformation may be automatically inserted into the credit roll portion.For example, advertisements, viewing recommendations, news, weather,games and the like may be inserted into areas of the credit roll that donot include text. In another example, the credit roll may be shrunk to asmaller size to allow for the placement of the additional content in theremaining display space.

The details of these and other embodiments of the present disclosure areset forth in the accompanying drawings and the description below. Otherfeatures and advantages of the disclosure will be apparent from thedescription and drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is illustrated by way of example and not limitedin the accompanying figures in which like reference numerals indicatesimilar elements and in which:

FIG. 1 illustrates an example content distribution network through whichvideo programming and other content may be delivered.

FIG. 2 illustrates an example computing system that may be used toimplement one or more aspects described herein.

FIG. 3 illustrates an example method for automatically extending a videorecording according to one or more aspects described herein.

FIGS. 4A & 4B illustrate a process for identifying a transition betweentext-heavy video frames and non-text heavy video frames according to oneor more aspects described herein.

FIG. 5 is a flowchart illustrating an example method by which textblocks may be detected in a video frame according to one or more aspectsdescribed herein.

FIGS. 6A & 6B illustrate an example of determining contrast for a videoframe pixel according to one or more aspects described herein.

FIGS. 7A-7C illustrate an example process for identifying text blocksaccording to one or more aspects described herein.

FIG. 8 is a flowchart illustrating an example method for insertingadditional content into a portion of a video stream according to one ormore aspects described herein.

FIG. 9 illustrates an example video frame including inserted additionalcontent according to one or more aspects described herein.

DETAILED DESCRIPTION

FIG. 1 illustrates an example content distribution network that allowsdelivery of content from a service/content provider server 101 to one ormore user systems such as a display 103, set top box 105 and computingsystem 107 (e.g., desktop or laptop computer, mobile device such as asmartphone, etc.). The distribution network may include multiplenetworks including a public switched telephone network (PSTN) 109, anddigital networks 111, such as coaxial cable network, optical fibernetwork, a hybrid fiber/coax network, cellular telephone wirelessnetwork, local wireless (e.g., WiMAX), satellite, etc. In one or morearrangements, network 111 may support a digital voice network bydigitizing voice communication and transmitting the data over lines ofthe network 111. A digital voice network may be supported by a coaxialcable network, a fiber optic cable network, a satellite network, or anyother desired physical network architecture. In one or moreconfigurations, content and services provided by the provider 101 mightonly be accessible to users with membership or a certain level ofmembership.

Network 111 and/or PSTN 109 may further support access to a data networkincluding, for example, a wide area network (WAN) such as the Internet.In one example, PSTN 109 may allow a computing system to access theInternet through a dial-up modem. One or more portions of network 111may be part of a private local area network (LAN). Alternatively oradditionally, network 111 may include one or more logical networks thatmay be public or private. For example, a service provider such as avideo or television content distributor may provide a private logicalcontent network that only allows subscribers (e.g., clients 103, 105 and107) to receive and/or consume the content distributed therethrough. Thecontent transmitted through the private logical network might also beencrypted according to an encryption protocol that only members of thelogical network is configured to understand. The private logical contentnetwork may be defined by multiple network addresses corresponding tothe members of the network (e.g., clients 103, 105 and 107 and serviceprovider server 101). Alternatively or additionally, a user may placeorders for content or communicate other information to service provider101 using a communication device such as mobile phone 113.

FIG. 2 illustrates a computing system 201 that may be used to implementvarious aspects of the disclosure. For example, computing system 201 maybe used to identify a transition between video portions having little tono text and video portions having more substantial amounts of text, asdiscussed below. For example, computing system 201 may be used todetermine the beginning of a credit roll at the end or another portionof a video program in a video content stream. Computing system 201 maybe included at a central facility of provider 101, and/or at clients103, 105, 107 or 113 of FIG. 1, for instance. By identifying thebeginning of a credit roll, as discussed in more detail below, computingsystem 201 may more accurately identify the end of the program. Suchaccuracy may improve the ability of a recording device, in one or moreexamples, to fully record a program if the program deviates from apredefined schedule (e.g., if a movie extends past an end time definedin an electronic programming guide (EPG)). Program deviations may occurdue to a variety of causes including the late ending of a previousprogram, overtime in sporting event programming, other program overruns(e.g., Academy Award speeches running longer than the allotted timelimit), service irregularities (e.g., disruptions in service) and thelike. Since such events are typically unplanned, a user wishing torecord a program may find that the recording prematurely ends.Additionally, the identification of the credit roll portion may allowthe computing system 201 to add additional content information, such asrecommendations for other programs, weather, news, advertisements andthe like.

Computing system 201 may include a variety of firmware, software andhardware components including one or more processors 203, memory 205(e.g., random access memory (RAM) and read-only memory (ROM)), inputadapters 207, output adapters 209 and network adapter 211. Processor 203may be configured to perform mathematical calculations and executeinstructions stored in memory 205. Such calculations and instructionsmay include determining a level of contrast for each pixel in a videoframe. In another example, processor 203 may be configured to executeinstructions for identifying text blocks within a video frame, asfurther described herein. Memory 205, in addition to storing computerreadable instructions, may further store content items such as video,audio and/or text, user profile information, service information andvarious other types of data. Memory 205 may include various types ofstorage including optical, magnetic and flash storage systems. Inputadapters 207 may be configured to facilitate the reception andprocessing of data from one or more input devices such as a keyboard217, a remote control 219, a video camera (not shown), a microphone (notshown), a motion sensing device (not shown) and the like. For example,input adapter 207 may be configured to receive and process input from auser specifying a program that the user wishes to record using remotecontrol 219. The recordation instructions may subsequently be stored inmemory 205. Output adapters 209, on the other hand, may be configured tofacilitate the outputting of data to one or more output devices such asa display 213 (e.g., computer monitor, television) or other visualoutput device, speakers 215 or other audio output systems, tactileand/or haptic feedback systems (not shown) and the like. In one example,video content may be displayed to a television and/or to an external orinternal mass storage recording device (not shown).

According to one aspect, computing system 201 may store programming andinstructions that may be executed by processor 203 to identify the startof a credits portion in a video program. A credits or credit rollportion may, in one example, include a portion of a video program thatdisplays all the entities that contributed to the production of thatvideo program. The credit roll may list actors, producers, audio andvisual editors, movie, television and/or music studios, and the like.The credit roll is generally included at the end of a video program andthus, may be particularly indicative of when a video program has ended.Accordingly, computing system 201 may insure that a video recording, forinstance, is automatically extended to fully capture a video program bydetecting the start of a credit roll. Once the computing system 201detects the start of the credit roll, the computing system 201 mayinstruct a recording subsystem to end the recording a predefined amountof time (e.g., 2 minutes, 5 minutes, 10 minutes, etc.) after thedetected credit roll start. Capturing the entire credit roll might notbe as imperative as capturing the entirety of a substantive portion ofthe video program. In other examples, computing system 201 may beconfigured to perform other functions upon detection of the start of thecredit roll. For example, computing system 201 may identify areas of thecredit roll in which additional content such as recommendations,advertisements, news and the like may be inserted without overlaying orobscuring existing text.

FIG. 3 illustrates an example method by which a beginning of a creditroll may be detected in a video stream including a video program and bywhich a recordation may be automatically extended based thereon. In step300, a recording system may receive user input identifying parametersfor recording video content. The recording parameters may include, forexample, a program name, a listing in an electronic programming guide(EPG), start and end times, a service or content source identifier,whether the recording is to be recurring or a one-time-only event and/orcombinations thereof. In many of the aforementioned examples, the starttime and end time of the recording may be determined based on apredefined schedule. In steps 305 and 310, the recording system maystore the recording parameters and wait for appropriate triggeringevents, respectively. For example, the triggering event may include theoccurrence of the specified start time. In step 315, the recordingsystem may determine whether the triggering event has been detected. Ifnot, the system may return to step 310 to continue monitoring for thetriggering event. If, however, the recording system determines that thetriggering event has been detected, the recording system may beginrecording content according to the specified recording parameters (e.g.,channel, program name, etc.) in step 320.

Once recording has begun, the computing system may monitor the currenttime in step 325 and determine whether the current time matches apredefined amount of time prior to the scheduled end time of the videoprogram in step 330. For illustrative purposes, the predefined amount oftime may be 10 minutes. In other examples, the predefined amount of timemay be 1 minute, 2 minutes, 5 minutes, 15 minutes, 20 minutes, 30minutes and the like. If the current time does not match the predefinedamount of time prior to the scheduled end time, the computing system mayreturn to monitoring the current time in step 325. If, however, thecurrent time does match, the computing system may extract a number ofmost recently recorded video frames in step 335 (e.g., from a massstorage device of the recording system or a receiver buffer). In oneexample, the number of extracted video frames may be determined based onthe use of 2 frames per second to extract frames for the last 5 minutesof recorded video (resulting in 600 extracted frames). In otherexamples, more or less frames may be extracted per second, or frames canbe extracted to cover greater or less time depending, for example, on aspeed at which text moves in the rolling credits.

Upon extracting the video frames, the computing system may subsequentlydetermine a number of text blocks in each frame in step 340. A textblock may include a contiguous or continuous region of text in a videoframe. A text block may be defined in various manners based on allowabletext block shapes and sizes and/or an amount of allowable space betweencharacters of text (e.g., to still be considered within a single textblock). An example method for identifying and determining a number oftext blocks in a video frame is described in further detail below withrespect to FIG. 5. A number of text blocks may be relevant inidentifying a beginning of the credit roll since a credit roll generallyincludes significantly more text than a substantive portion of a videoprogram. For example, a movie generally includes images of people orscenery with very little text whereas a credit roll is almost entirelycomprised of text. Accordingly, identifying a transition between frameshaving smaller amounts of text and frames having greater amounts of textmay correspond to identifying a transition from a substantive portion ofa video program to a credit roll. Transitions may also be identified ina sequence of frames that progresses from frames having large amounts oftext to frames having substantially less amounts of text.

In one arrangement, identifying the transition may include analyzing thetext block information using a wavelet in step 345 to identify the pointin the sequence of frames where the greatest difference exists betweenthe left and right sides of the wavelet. A wavelet may include amathematical function used to divide a given function or time signalinto different scale components. Wavelets and the application thereofare further described below in FIGS. 4A and 4B. The maximum determineddifference in number of text blocks in the extracted sequence of framesmay subsequently be compared to a threshold difference amount in step350. The threshold may be defined based on the radius or size of thewavelet used. For example, the threshold may be defined as 3 times theradius of the wavelet. Thus, in one specific example, if the wavelet hasa radius of 15 seconds (i.e., 15 seconds of positive frames and 15seconds of negative frames) and if the system counts text blocks onceper second, then the threshold difference may be set as 45. If themaximum determined difference does not meet the threshold difference,the computing system (e.g., computing system 201 of FIG. 2) may returnto step 335 to continue the analysis for another sequence of recordedframes. Additionally, the predefined end time for recording may beignored and/or extended as shown in step 360. If the maximum determineddifference meets or exceeds the threshold difference, the correspondingpoint in the recorded video stream may be identified as the beginning ofthe credit roll and the recording may be scheduled to end a specifiedamount of time after the start of the credit roll in step 355. Forexample, the computing system may schedule stoppage of the recording 1minute, 2 minutes, 5 minutes or 10 minutes after a time corresponding tothe beginning of the credit roll. The amount of recording time allottedafter the beginning of the credit roll may depend on an expectedduration of the credits, or a user's selection. The expected duration ofthe credits may vary and may be defined differently for differentcontent types. For examples, movies may include longer credit rollswhile television shows or sporting events may include shorter creditrolls. Alternatively, if the recording time is automatically extendedeach time the analysis does not detect the start of the credit roll, therecording time may be left unchanged upon detecting the start of thecredit roll.

FIGS. 4A and 4B illustrate an example process whereby a wavelet analysisis performed across a sequence of video frames. In FIGS. 4A and 4B, eachnumber in listing 401 represents the number of text blocks identifiedwithin a single frame of a sequence of frames. For example, in FIG. 4A,2 text blocks were identified in the first frame of the sequence offrames while 5 text blocks were identified in the second frame in thatsame sequence and so on. Listing 401 may be arranged according tochronological order, e.g., from oldest to most recently recorded frame.Wavelet 403 may be defined based on a specified amount of analysis time.For example, in FIG. 4A wavelet 403 may compare a first 30 seconds of avideo sequence with a subsequent 30 seconds of frames. Alternatively,wavelet 403 may compare a previous 3 seconds, 10 seconds, 15 seconds, 45seconds or 1 minute of frames with an equal number of subsequent frames.Each number of text blocks on the left hand side of wave 403 may bedeemed negative while each number of the text blocks on the right handside may be deemed positive. A difference may then be calculated bysumming the numbers on the left hand side and summing the numbers on theright hand side. In the illustrated example of FIG. 4A, the left handsum results in a value of −32 while the right hand sum results in avalue of +46. The left hand sum may then be added to the right hand sideto determine a difference (e.g., 14).

This process may be conducted through the entire sequence of extractedframes (e.g., moving the wavelet right by 1 frame each time) and thedifferences aggregated. For example, FIG. 4B illustrates the analysis ofa 1 minute period beginning with the second extracted frame 405. Thedifference between the left and right hand sides of wavelet 403 may bedetermined as in FIG. 4A. The boundary of the wavelet may besubsequently moved to a next frame in the sequence and so on until theright boundary of the wavelet reaches the last frame. The maximumdifference may then be determined from the aggregated differences (e.g.,14 in FIG. 4A and 16 in FIG. 4B). Between the illustrated examples ofFIGS. 4A and 4B, the maximum difference would be 16 (52+−36). The pointat which the maximum difference is generated or determined may then beidentified as the beginning of the credit roll.

FIG. 5 illustrates a method by which text blocks may be identifiedwithin a video frame. The process may rely on the typical practice fortext to be displayed in high contrast to surrounding colors and imagesto facilitate reading. For example, text may be displayed with abrightness or color that is significantly different from the brightnessof surrounding images. Accordingly, high contrast areas may beidentified in each video frame and identified as a potential text block.

In step 500, a computing system (such as computing system 201 of FIG. 2)may receive a video frame to be analyzed. The video frame may becomprised of multiple pixels, depending on the resolution of the video.For example, 1080p or 1080i video frames may include 1920×1080 pixels(for videos in 16:9 aspect ratio format). In step 505, the computingsystem may determine the brightness of each pixel in the frame. Thebrightness may subsequently be used to determine a contrast of eachpixel in step 510. Contrast may be calculated for a current pixel, inone example, by determining a difference in brightness betweenimmediately adjacent pixels. FIGS. 6A and 6B illustrate examples ofcalculating contrasts for horizontal text and vertical text,respectively. In FIG. 6A, the contrast for a pixel 601 may be calculatedby determining the difference in brightness between immediately adjacentleft and right pixels 603 and 605, respectively. For example, if pixel603 has a brightness value of 100 and pixel 605 has a brightness valueof 250, the contrast of pixel 601 may be assigned a value of 150. Pixelson the border of frame 600 might not be assigned a contrast value.Alternatively, the border pixels may be assigned a default contrastvalue such as 0. For vertically progressing languages and text (e.g.,Chinese) as shown in FIG. 6B, the contrast for a pixel 610 may becalculated by determining the difference in brightness between immediateadjacent top and bottom pixels 611 and 613, respectively.

Referring again to FIG. 5, in step 515, a text analysis window may bedefined by specifying a width and height of the window. The video framemay then be partitioned into multiple sections or blocks according usingthe text analysis window in step 520. That is, the size of each sectionor block corresponds to the size of the text analysis window. Thesections or blocks may be overlapping or non-overlapping. In eithercase, each pixel of the video frame may be allocated to a section orblock (or multiple sections or blocks). The highest contrast valuewithin each block may then be compared to a threshold contrast value instep 525. If the contrast value meets or exceeds the threshold contrastvalue as determined in step 530, the area corresponding to that sectionmay be recorded or otherwise noted as a block having text in step 535.Otherwise, the section or block might be discarded in step 540. In step545, contiguous recorded blocks may be merged into a single text blockor section. Contiguous blocks may be overlapping or non-overlapping. Forexample, two blocks having boundaries that are immediately adjacent toone another may be considered to be contiguous while two blocksoverlapping (i.e., sharing pixels) may also be considered contiguous.

The size of the text analysis window (and the partitioned blocks) may bedefined based on an expected maximum distance between pixels ofcharacters in a word, sentence, line, paragraph or other textualstructure. For example, if the computing system wishes to define asingle text block as a horizontal or vertical line of text, thecomputing system may define the window width or height, respectively, asbeing equal to the expected maximum distance between characters (orpixels thereof) in a line of text. For example, a window width may bedefined as the distance between a top most pixel of the letter “t” andthe top most pixel of the letter “J” in the phrase “Directed by Pat.January 2010.” In some examples, the width may be greater than theexpected maximum distance (e.g., 10%, 20%, 25%, 50%, 75%, 100% greater).The setting of the partition or window size in such a manner may insurethat a high contrast pixel is included in every partitioned block withinthat line of text. Otherwise, areas between characters within the lineof text might not be recorded or noted (e.g., if the window size is toosmall and partitioned areas do not include a sufficiently high contrastpixel). This may then result in the entire line not being aggregated asa single block since the identified areas might not be contiguous due tothe non-recorded areas. In another example, if the computing systemdefines a text block to comprise a single word, the window width orheight may be equal to the expected maximum distance between charactersin a word and, in some cases, less than an expected minimum distancebetween words.

FIGS. 7A-7C illustrates an example use of a text analysis window topartition a video frame into multiple segments or blocks. FIG. 7A, forexample, illustrates video frame 700 as partitioned into multiplewindows 701 based on a specified text analysis window size. In practice,the partitions may be substantially smaller than illustrated in theexample of FIG. 7A. The highest contrast value in each of windows 701may be identified and compared to a threshold contrast value. Thosewindows not having a pixel with a contrast meeting the threshold may bediscarded while windows meeting the threshold may be recorded. In oneexample, the contrast threshold may be 60. Other contrast thresholds maybe defined depending on preferences and/or content type. FIG. 7Billustrates a representation of video frame 700 once non-matchingwindows have been discarded and matching windows are retained. In oneexample, contiguous matching windows, such as windows 703 a and 703 bmay be combined into a single text block. FIG. 7C illustrates arepresentation of video frame 700 once contiguous recorded windows aremerged into single text blocks 705.

Referring back to FIG. 5, once the text blocks have been identified inthe video frame, a filter may be applied to the text blocks in step 550to remove blocks that are not size compliant. Non-size compliant blocksmay include those blocks that do not have a minimum required height,width or both. Size requirements may be used to insure that theidentified blocks are blocks of text rather than non-text related highcontrast pixels. For example, characters in words may have a minimumpixel height depending on the font style and size used. Accordingly,those text blocks having a height of less than 10 pixels, for example,may be filtered out as noise or false positives. False positives mayalso result from areas that include non-textual images or patternsexhibiting high contrasts. For example, an image of a window on a sunnyday may be mis-identified as a text block due to the high contrastbetween the border of the window and the light shining through thewindow panes. To remove such false positives, the computing system mayfurther perform a high contrast density filtering process to eliminatesuch false positives in step 555.

A high contrast density filtering process may examine a high contrastpixel density of each of the identified blocks and compare the densityto a threshold density. If the high contrast pixel density does not meetor exceed the threshold density, the corresponding block may be removedas a text block. In one or more examples, the threshold density may begreater than the width of the text block being analyzed divided by thesize of the text analysis window. High contrast pixel density may beuseful in identifying false positives since text generally exhibits ahigh frequency of alternating bright and dark spots (e.g., pixels of thecharacter versus pixels of the background). In contrast, a bright windowin an image (e.g., sun shining through the window pane), for example,exhibits less frequency in alternating bright and dark spots and thusmay exhibit less high contrast areas. That is, while there aretransitions at the boundary of the window pane and the window frame orwalls adjoining the window, the brightness within the window panes isgenerally consistent and continuous. Thus, contrast within the windowpanes may be low and high contrast pixels might only be identified atthe points where the window pane ends and the window frame or anadjoining wall begins.

In step 560, the computing system may subsequently determine the numberof distinct text blocks identified from the processes of steps 500-550.The computing system may equate the number of distinct text blocks tothe number of words, sentences, paragraphs, lines or other textstructure in the video frame.

The detection of the beginning of a credit roll may be used to perform avariety of functions. FIG. 8, for example, illustrates a method for theinsertion of content into a credit roll portion of a video stream. Instep 800, a computing system may identify the starting point of thecredit roll according to the methods and systems described herein. Instep 805, the computing system may then identify areas of the videostream that are not occupied by text. This may be performed by analyzingthe positions of the identified text blocks and defining the remainingspace as unoccupied by text. In step 810, the computing system mayselect an information item to be displayed during the credit roll. Theinformation item may be a public service announcement, an advertisementsuch as an interactive advertisement, news, weather, interactivefeatures and/or combinations thereof. In one example, the informationitem may include a recommendation for another video program. Therecommendation may be generated based on a viewer's preferences, profileinformation (e.g., demographics), viewer's opinion of the current videoprogram and/or combinations thereof. The computing system may furtherdetermine a duration and size of the information item in step 815. Insome arrangements, the duration may be modified according to a desiredduration (e.g., for weather information). The size may also be modified(e.g., shrunk down or expanded as necessary).

In step 820, the computing system may identify a portion of the creditroll of the determined duration that includes consecutive frames havingnon-text occupied space of the determined size and in the same locationthroughout the consecutive frames. Consecutive frames may refer to theframes that are extracted and analyzed and not all frames within thatportion of the credit roll. For example, a video may comprise 30 framesper second. However, only the extracted and analyzed 2 frames per second(for example) of the identified credit roll portion may be analyzed instep 820. Once identified, the computing system may insert theinformation item in the identified portion of the credit roll and in thedetermined location within each frame in step 825. Insertion may occurat a provider's equipment (e.g., at a central office such as a headendor at an edge device closer to the end user) or at the equipment of theend user (e.g., customer premises equipment (CPE)). Insertion of theinformation item may be performed for all frames for the identifiedcredit roll portion regardless of whether the frame was extracted andanalyzed for text blocks. Thus, in the above example where a videostream includes 30 frames per second, the information item may beinserted into all 30 frames per second for the identified credit rollportion.

In some examples, the information item may be selected after identifyingportions of a credit roll having consecutive frames exhibitingconsistent and continuous areas devoid of text. The size of thesetextually empty areas and the duration of the identified portion may bedetermined and used in selecting an appropriate information item. Forexample, a computing system may identify a segment of a credit rollhaving a duration of 30 seconds and including an area continuouslydevoid of text and measuring 100×75 pixels. Accordingly, the computingsystem may select an advertisement that is able to fit within thedetermined size and having a duration equal to or less than 30 seconds.

In other examples, once the beginning of a credit roll portion has beenidentified, the credit roll may be shrunk to a smaller size to allow forplacement of advertisements or other content outside of the credit rollboundary. FIG. 9 illustrates an example of a video frame with creditroll 900 shrunk to a smaller size and content recommendation 901 andweather information 903 inserted outside of the shrunken credit rollframe 900.

While many of the aspects described herein have been discussed inrelation to credit rolls and the detection thereof, the same featuresmay be applied to detecting the transition a portion of a content itemor video stream having substantial amounts of text and a portion of acontent item or video stream having fewer or smaller amounts of text.

The methods and features recited herein may further be implementedthrough any number of computer readable media that are able to storecomputer readable instructions. Examples of computer readable media thatmay be used include RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, DVD or other optical disk storage, magneticcassettes, magnetic tape, magnetic storage and the like. Also, some ofthe steps in the described methods may be omitted.

Additionally or alternatively, in at least some embodiments, the methodsand features recited herein may be implemented through one or moreintegrated circuits (IC s). An integrated circuit may, for example, be amicroprocessor that accesses programming instructions or other datastored in a read only memory (ROM). In some such embodiments, the ROMstores programming instructions that cause the IC to perform operationsaccording to one or more of the methods described herein. In at leastsome other embodiments, one or more of the methods described herein arehardwired into an IC. In other words, the IC is in such cases anapplication specific integrated circuit (ASIC) having gates and otherlogic dedicated to the calculations and other operations describedherein. In still other embodiments, the IC may perform some operationsbased on execution of programming instructions read from ROM or RAM,with other operations hardwired into gates and other logic of IC.Further, the IC may output image data to a display buffer.

Although specific examples of carrying out various features have beendescribed, those skilled in the art will appreciate that there arenumerous variations and permutations of the above-described systems andmethods that are contained within the spirit and scope of the disclosureas set forth in the appended claims. Additionally, numerous otherembodiments, modifications and variations within the scope and spirit ofthe appended claims will occur to persons of ordinary skill in the artfrom a review of this disclosure.

1. A method comprising: performing a text detection process on an imageby comparing a high-contrast pixel density, of each of a plurality ofareas of the image, with a threshold value; selecting, based on thecomparing, a first area of the image from the plurality of areas of theimage; and modifying the image at a location that is based on the firstarea.
 2. The method of claim 1, wherein the selecting comprisesselecting the first area based on a determination that the high-contrastpixel density of the first area is greater than the threshold value. 3.The method of claim 1, wherein the first area has a size that is basedon a particular text size associated with the image.
 4. The method ofclaim 1, wherein the image is part of a sequence of images in a videocontent item.
 5. The method of claim 1, wherein the location is outsidethe first area.
 6. The method of claim 1, wherein the location is withinthe first area.
 7. The method of claim 1, wherein the image is part of afirst content asset, and wherein the modifying the image comprisesinserting at the location a second content asset in the image.
 8. Themethod of claim 1, wherein the modifying the image comprises inserting,at the location in the image, one or more of: an advertisement, aviewing recommendation, news, or weather.
 9. The method of claim 1,wherein the modifying the image comprises inserting a game in the imageat the location.
 10. The method of claim 1, wherein the modifying theimage comprises shrinking text within the first area of the image. 11.The method of claim 1, wherein the plurality of areas of the imagecomprises a second area of the image that is contiguous in the imagewith the first area of the image, the method further comprising:selecting, based on the comparing, the first area of the image; andmerging the first area with the second area to form a merged area,wherein the location is outside of the merged area.
 12. The method ofclaim 1, further comprising: comparing a contrast of each of a pluralityof pixels of the first area with a second threshold value; anddetermining the high-contrast pixel density of the first area based onthe comparing each of the plurality of pixels of the first area with thesecond threshold value.
 13. The method of claim 1, wherein thehigh-contrast pixel density comprises a density of a plurality ofhigh-contrast pixels of the first area, and wherein the plurality ofhigh-contrast pixels have contrasts exceeding a contrast thresholdvalue.
 14. A method comprising: performing a credit roll detectionprocess on a video, wherein the video comprises a plurality of videoframes that comprises a first video frame, by comparing a high-contrastpixel density of each of a plurality of areas of the first video framewith a threshold value; selecting, based on the comparing, a first areaof the first video frame from the plurality of areas of the first videoframe; and based on the first area being selected, modifying the video.15. The method of claim 14, wherein the first area has a size that isbased on a particular text size associated with the video.
 16. Themethod of claim 14, wherein the modifying the video comprises a contentasset in the first video frame at a location that is outside the firstarea of the first video frame.
 17. The method of claim 14, wherein themodifying the video comprises inserting, at a location in the firstvideo frame that is outside the first area of the first video frame, oneor more of: an advertisement, a viewing recommendation, news, orweather.
 18. The method of claim 14, wherein the modifying the videocomprises shrinking credit roll text within the first area of the firstvideo frame.
 19. A method comprising: inserting information in an imageat a location that does not overlap text in the image, by: determining aplurality of areas of the image; determining, for each area of theplurality of areas, a contrast density; determining the location basedon the contrast densities of at least some of the plurality of areas;and inserting the information in the image at the location.
 20. Themethod of claim 19, wherein the plurality of areas of the imagecomprises a first area of the image and a second area of the image, andwherein the second area of the image is contiguous in the image with thefirst area of the image, the method further comprising: selecting, basedon comparing the contrast densities of the first area and the secondarea with a threshold value, the first area of the image and the secondarea of the image, wherein the inserting the information comprisesinserting the information so as to be located in both the first area ofthe image and the second area of the image.
 21. The method of claim 19,wherein the information comprises one or more of: an advertisement, aviewing recommendation, news, or weather.